#ifndef SQLITE_H
#define SQLITE_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QMessageBox>
#include <QVariantMap>
#include <QTime>
#include <QDebug>

#include <QFile>
#include <QDir>

class Sqlite
{
public:
    Sqlite(QString dbpath="",QString dbname="",QString conn_name="sqlite");
    ~Sqlite();
    bool createTable(QString table,QString content="\
id INTEGER PRIMARY KEY AUTOINCREMENT,\
stu_num INTEGER NOT NULL,\
weight REAL NOT NULL,\
time TEXT not null"
                     );
    bool dropTable(QString table);
    void close(void);
    bool insertInto(QString table,QVariantMap dat);

    bool deleteBy(QString table,QString condition);

    bool updateBy(QString table,QString condition,QVariantMap dat);

    QSqlQuery selectBy(QString table,QString content,QString condition="");

    QString lastError() const;
    void setLastError(const QString &lastError);

    QString lastSqlString() const;
    void setLastSqlString(const QString &lastSqlString);

private:
    QSqlDatabase db; //数据库句柄
    QString _dbname;//数据库名,
    QString _connectionName;//连接名称  通过不同的连接名字可以在不同的线程中调用

    QString _lastError;//最后依次的错误
    QString _lastSqlString;//最后依次的sql语句


//    QMutex mutex;                 //多线程资源访问控制//
};

#endif // SQLITE_H
